Matilde Tracker v1.5 for Buzz

Introduction

Matilde Tracker is a tracker machine for Buzz which behaves more like Protracker than Jeskola Tracker.

All Protracker effects that make sense in Buzz are implemented and behave in a similar fashion to their Protracker cousins, so you'll feel right at home. The E/xy effects have been renamed to Ex/yy, read on.

Additionally you now have two effects per note, life is sweet!

The machine is a stereo generator, so you need Buzz 1.2 or later to use it. In fact, you'll probably need the latest beta too. Replace your buzz.exe with the one here. You'll also auxbus.dll. If stereo is annoying, there's a mono version you can use instead.

Volume, pitch and panning envelopes are supported, they take 64 ticks to complete. If this value is undesirable, it can be changed in the machine's attributes.

Have fun,
Carsten SĀ°rensen

What's new in v1.5?

What was new in v1.3?

Improved MIDI support:

What was new in v1.2?

What was new in v1.1?

Virtual Channels

Matilde Tracker supports "virtual channels." It's a bit like NNAs in Impulse Tracker, but on the other hand, it's not. To use them, you must enable them for the tracker machine in question - this is done through an attribute (see below.)

When enabled, the tracker supports 64 note polyphony, in much the same way a hardware sampler handles it. What it does exactly, is when you play a new note the last one is allowed to finish. This is great for chord riffs, plucked strings and a bunch of other stuff. So now, instead of going through the hassle of using more tracks, you can enable virtual channels instead.

Sometimes the note will be cut anyway to make sure no samples sit there and take up all the channels. This happens when you have a looping sample with no suitable volume envelope. This is a safety measure and completely intentional.

Using MIDI

Setting up MIDI input is now very easy - everything is controlled from the attributes.

You'll have to set up the attributes to the right channel. Now, the machine will respond to MIDI in events.
The tracks play the note with the last instrument used in the track, so a track will have to have played something before any sound is made. This is normally not what you want, using an attribute you can select the wave MIDI events will use instead.

The default behaviour for MIDI events is to use all available tracks in succession from left to right, including all unused tracks. You can change the behaviour using an attribute to use unused tracks only so you can jam along with your track.

For more information, refer to the attribute descriptions below.

Machine attributes

Attribute Description
Volume Ramp The time in milliseconds micro volume-ramping takes. This is to avoid clicks.
Volume Envelope Span The number of ticks a volume envelope spans from left to right.
MIDI Channel The MIDI channel the machine responds to. 0 means it doesn't respond.
MIDI Velocity Sensitivity How sensitive the machine is to MIDI velocity. 0 means it doesn't care, 256 means it cares a lot ;)
MIDI Wave MIDI notes will use this waveform.
MIDI Uses Free Tracks If 1 - MIDI notes will only use free tracks. If not, all tracks.
Filter Filtering mode when playing waveforms. 0=none, 1=linear, 2=spline. Spline is much slower than linear, so only use it if you can handle it.
Pitch Envelope Depth Pitch envelope will range between +- this attribute.
Enable Virtual Channels 0=normal behaviour, 1=virtual channels enabled

Pattern editor

Column Description
1 The note to play
2 The current wave. If empty, the previously selected wave will be used
3 Volume. 0=mute, 40=half, 80=full, FE=about double the volume
4 and 6 Effect to use, see below for description
5 and 7 Argument to the effect

Obsolete/changed/ignored Protracker/FT2 effects

Command Description Reason
5/xy Keep tone portamento'ing and do volume slide with argument Obsolete, there's two effects columns
6/xy Keep vibrato'ing and do volume slide with argument Obsolete, there's two effects columns
B/xx Break to position Not possible, machines have no control over the songposition
C/xx Set volume Replaced by the volume parameter
D/xx Break to next position, step xx Not possible, machines have no control over the songposition
E/3x Set glissando Not implemented
E/43, E/47 Set vibrato waveform to noise Not implemented
E/6x Pattern loop Not possible, machines have no control over the songposition
E/73, E/77 Set tremolo waveform to noise Not implemented
E/Ex Patterndelay Not possible, machines have no control over the songposition
E/Fx Invert loop Not implemented

Implemented effects

Command Argument Description Notes
00xyArpeggio
On subdivision step 0, the original note will be played. Step one will play the original note+x halftones. Step two will play the original note+y halftones. Step three will restart the process
01xxSlide up xx notches
02xxSlide down xx notches
03xxTone portamento
If xx is zero, keep portamento'ing
04xyVibrato
x - speed
y - depth
If either is zero, use previous value
05xySlide panning
x - amount to slide panning left
y - amount to slide panning right
06xyAutopan
x - speed
y - depth
If either is zero, use previous value
07xyTremolo
x - speed
y - depth
If either is zero, use previous value
08xxSet panning position
0=left, 80=middle, FF=right
09xxSample offset
xx - offset into sample.
Unlike Protracker this is not an absolute offset but scales to the whole length of the sample, ie a value of 80 will start from the middle of the sample. If there's no argument, the sample offset will be set right at the end, useful for E8/01.
Use with a note
0AxyVolume slide
x - amount to slide volume up
y - amount to slide volume down
0FxxSubdivide amount
This is the same as the Protracker Fxx command, except it doesn't actually change the speed of the song, only the speed of the track's effects. If the subdivide amount is higher, effects will be updated more often, making them run faster. The default value is 6.
10xxProbability
xx - Probability for sample being played. 01=will almost certainly not be played, 80=50%, FF=almost certain
Use with a note
11xxLoop fit
xx - Number of ticks the waveform's loop should take to complete. Changes the frequency of the waveform.
Use with a note
12xxLoop fit
xx - Same as 11, but tracks song speed changes and adjust the frequency accordingly.
Use with a note
13xyAuto shuffle
x - Ticks to shuffle. 2 shuffles every other step, 3 every third step and so on.
y=Shuffle amount. 0=none, F=almost a full tick. change the subdivision amount to, say, 10 for greater precision.
14xxRandomize volume
xx - Maximum amount the volume will be randomized
15xxRandom delay
xx - Maximum number of subdivision steps the note will be delayed
Use with a note
16xxRandomize pitch
xx - Maximum number of notches the pitch will be randomized
17xxHarmonic play
xx - The base frequency will be multiplied by xx
18xyCombined note delay and cut
x - The subdivision step to trigger the note
y - The subdivision step to release the note
Use with a note
19xySustain pedal
y - Subdivision step to trigger command
x=1 - Depress sustain pedal
x=2 - Release sustain pedal
20xxFilter cutoff
21xxSlide filter cutoff up xx notches
22xxSlide filter cutoff down xx notches
230xSet filter cutoff LFO type
x - 0 - sine, retrig waveform at samplestart
x - 1 - saw, retrig waveform at samplestart
x - 2 - square, retrig waveform at samplestart
x - 4 - sine, don't retrig waveform at samplestart
x - 5 - saw, don't retrig waveform at samplestart
x - 6 - square, don't retrig waveform at samplestart
24xyFilter cutoff LFO
x - speed
y - depth
If either is zero, use previous value
25xxFine slide filter cutoff up xx notches
26xxFine slide filter cutoff down xx notches
28xxFilter resonance
29xxSlide filter resonance up xx notches
2AxxSlide filter resonance down xx notches
2B0xSet filter resonance LFO type
x - 0 - sine, retrig waveform at samplestart
x - 1 - saw, retrig waveform at samplestart
x - 2 - square, retrig waveform at samplestart
x - 4 - sine, don't retrig waveform at samplestart
x - 5 - saw, don't retrig waveform at samplestart
x - 6 - square, don't retrig waveform at samplestart
2CxyFilter resonance LFO
x - speed
y - depth
If either is zero, use previous value
2DxxFine slide filter resonance up xx notches
2ExxFine slide filter resonance down xx notches
DCxxNote cutoff, releases note
E0xxSet filter type for track.
xx - 1 - filter disabled
x - 2 - 4p filter, lowpass
x - 3 - 4p filter, highpass
E1xxFine slide up xx notches
E2xxFine slide down xx notches
E40xSet vibrato type
x - 0 - sine, retrig waveform at samplestart
x - 1 - saw, retrig waveform at samplestart
x - 2 - square, retrig waveform at samplestart
x - 4 - sine, don't retrig waveform at samplestart
x - 5 - saw, don't retrig waveform at samplestart
x - 6 - square, don't retrig waveform at samplestart
E5xxSet finetune for track
00 = -1/2 halfnote, 80 = 0, FF = ~+1/2 halfnote
E60xSet panning type
See E4/0x for parameter
E70xSet tremolo type
See E4/0x for parameter
E801Reverse direction of sample being played
E9xxRetrig sample
xx - subdivision count at which sample is retriggered
Use with a note
EAxxFine volume slide up
EBxxFine volume slide down
ECxxNote cutoff, set volume to zero
EDxxNote delay
Delay samplestart for xx subdivision steps
Use with a note
EExxFine panning slide left
EFxxFine panning slide right